The present invention relates generally to web hosting services, and more particularly, the invention relates to a method, system, and storage medium for providing context-based dynamic policy assignment in a distributed processing environment.
Building and deploying Web-based enterprise applications online has been made possible through application hosting environments such as Microsoft's .NET™ and Java 2 Platform Enterprise Edition™ (J2EE). These hosting environments include services, APIs, and protocols that allow developers to build these Web-based applications.
The J2EE application environment is, by nature, a network-oriented, distributed object execution environment. In such environments, it is common for various policies to be assigned to application components within the network such as security, transaction, persistence, and performance policies. However, J2EE applications providers (e.g., BEA, Oracle, Sun) allow for only static declaration of these such policies. There is currently no way to dynamically select these policies based on information provided by the application client, such as identity or some other identifier that would specifically be used by the application server to assign a particular policy to this particular execution. Moreover, the need to dynamically assign policy as a client invocation request works its way through the distributed network, visiting one application server after another, is similarly unresolved.
Current attempts to resolve the problem include making multiple copies of the distributed application in order to assign different static policies to each application instance. All application instances are then made available on the network and the clients must access the appropriate application instance in order to execute the set of policies pertinent to that client's usage of the application. Having multiple copies of the same application significantly increases the cost and complexity of managing application upgrades and requires greater compute resources, particularly storage.
What is needed therefore, is a way provide dynamic policy assignment to application instances.